package com.cw.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cw.dto.*;
import com.cw.entity.ThisIiPrepayin;
import com.cw.entity.VRJSZ;
import com.cw.entity.VYqBrdjxx;
import com.cw.request.VYqBrdjxxConditionRequest;
import com.cw.vo.PatientInfoToDoctorVO;
import com.github.pagehelper.PageInfo;

import java.io.IOException;
import java.util.List;

/**
 * 查询患者列表信息
 * @author ly
 * @since 2021-08-18
 */
public interface IVYqBrdjxxService extends IService<VYqBrdjxx> {
    /**
     * 院前准备列表
     * @param condition 查询条件
     * @author ly
     * @since 2021-08-18 11:02
     * @return com.github.pagehelper.PageInfo<com.cw.entity.VYqBrdjxx>
     */
    PageInfo<VYqBrdjxx> getVYqBrdjxxPagesInfo(VYqBrdjxxCondition condition);

    PageInfo<VRJSZ> getVYqBrdjxxRJSSPagesInfo(VYqBrdjxxCondition condition);

    void getVYqBrdjxxDownLoad(VYqBrdjxxCondition condition);

//    void getVYqBrdjxxRJSSDownLoad(VYqBrdjxxCondition condition);


    /**
     * 院前准备人数统计  已登记/未登记
     * @author xnd
     * 2021 09/29
     */
    String gePpeopleStatistics(VYqBrdjxxCondition condition);


    /**
     * 院前准备详情
     * @param condition 查询条件
     * @author ly
     * @since 2021-08-18 15:36
     * @return com.cw.dto.VYqBrdjxxVeiwDTO
     */
    VYqBrdjxxVeiwDTO getVYqBrdjxx(VyqBrdjxxVeiwCondition condition);




    /**
     * 日间病房详情
     * @param condition 查询条件
     * @author ly
     * @since 2021-08-18 15:36
     * @return com.cw.dto.VYqBrdjxxVeiwDTO
     */
    VYqBrdjxxVeiwDTO  getRJSSVYqBrdjxx(VyqBrdjxxVeiwCondition condition);

    /**
     * 院前准备中心报表信息
     * @author ly
     * @since 2021-08-25 15:15
     * @return java.util.List<com.cw.dto.ReportReadyDocNameDTO>
     */
    List<ReportReadyDocNameDTO> getReportList(VYqBrdjxxConditionRequest requestInfo);

    /**
     * 科室医生对应预约患者信息
     *
     * @param requestInfo
     * @return
     */
    List<PatientInfoToDoctorVO> listPatientInfoToDoctor(PatientInfoToDoctorDTO requestInfo);

    List<ReportReadyDocNameDTO> geRJSStReportList(VYqBrdjxxConditionRequest requestInfo);

    List<ReportReadyDocNameDTO> getReportListIntegrated(String strDeptList,String jobNumber);

    List<ReportReadyDocNameDTO> getRJSSReportListIntegrated(String strDeptList,String jobNumber);

    /**
     * 院前准备中心报表信息--excel下载
     * @author ly
     * @since 2021-09-02 17:19
     */
    void getReportListDownLoadExcel(VYqBrdjxxConditionRequest requestInfo) throws IOException;
    void getListPatientInfoToDoctorExcel(PatientInfoToDoctorDTO requestInfo)throws IOException;;

    void getReportListIntegratedDownLoadExcel(String strDeptList,String jobNumber) throws IOException;

    /**
     * 日间病房中心报表信息--excel下载
     * @author ly
     * @since 2021-09-02 17:19
     */
    void getRJSSReportListDownLoadExcel(VYqBrdjxxConditionRequest requestInfo) throws IOException;

//    /**
//     * 自己本系统的手工电子住院证
//     * @param handworkPrepayinDto
//     * @return
//     */
//    PageInfo<ThisIiPrepayin> getHandworkPrepayin(HandworkPrepayinDto handworkPrepayinDto);
}
